/*
将整数转化为字符串：
num，转换对象
str，转换后存储字符串的数组
radix，转换（给于的字符串）的长度
*/
char *itoa(int num,char *str,int radix) 
{  
	/* 索引表 */ 
	char index[]="0123456789abcdefghijklmnopqrstuvwxz"; 
	unsigned unum; /* 中间变量 */ 
	int i=0,j,k; 
	/* 确定unum的值 */ 
	if(radix==10&&num<0) /* 十进制负数 */ 
	{ 
		unum=(unsigned)-num; 
		str[i++]='-'; 
	} 
	else unum=(unsigned)num; /* 其它情况 */ 
	/* 逆序 */ 
	do  
	{ 
		str[i++]=index[unum%(unsigned)radix]; 
		unum/=radix; 
	}while(unum); 
	str[i]='\0'; 
	/* 转换 */ 
	if(str[0]=='-') k=1; /* 十进制负数 */ 
	else k=0; 
	/* 将原来的“/2”改为“/2.0”，保证当num在16~255之间，radix等于16时，也能得到正确结果 */ 
	char temp; 
	for(j=k;j<=(i-k-1)/2.0;j++) 
	{ 
		temp=str[j]; 
		str[j]=str[i-j-1]; 
		str[i-j-1]=temp; 
	} 
	return str; 
} 

/*
将字符串转换成整数
str，转换的字符串数组目标
返回值：为转换后的整数；
*/
/*int atoi(char * str)
{
    int n=0;//保存整形  
    char firstChar = *str;//记录str的第一个字符
    if (firstChar == '+' || firstChar == '-')//+123 -123
    {
        ++str;
    }
    while(*str == '0')//00123  -00123
    {
        ++str;
    }

    while (*str)
    {
        char temp = *str;
        if (*str < '0' || *str> '9')
        {
            //puts("literal does not match format string ") ;
            return n;//该字符串含有非数字字符，不能转为整数
        }
        else
        {
            temp -= '0';
            n = n * 10 + temp;//将字符串转为整形
        }
        str++;
    }
    if (firstChar == '-')
    {
        n = -n;
    }
    return n;
}*/

